
//循环终止条件确定下来，即时在循环体内修改了数组，也能有效终止循环。
//否则可能变成死循环。
//编译器很难保证重启计算arr.length是安全的。
//提前确定了循环终止条件，避免多次计算数组长度。

 let arr = [1,2,3,4,5]



//这个不出死循环
 for(let i=0,n=arr.length;i<n;i++){
     console.log(i)
     arr.push(i)
 }


 //这个会死循环
 // for(let i=0;i<arr.length;i++){
 //    console.log(i)
 //     arr.push(i)
 // }